package repo

import (
	"context"
	"github.com/star-find-cloud/star-chat/image/domain"
	"github.com/star-find-cloud/star-chat/pkg/database"
)

type ImageRepoImpl struct {
	db    *database.PostgreSQL
	cache *database.Redis
}

func (r *ImageRepoImpl) Create(ctx context.Context, image *domain.Image) (int64, error) {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) CreateMany(ctx context.Context, images []*domain.Image) (int64, error) {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) Get(ctx context.Context, id int64) (*domain.Image, error) {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) GetMany(ctx context.Context, ids []int64) ([]*domain.Image, error) {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) GetByOwner(ctx context.Context, ownerType, ownerID int64) ([]*domain.Image, error) {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) GetManyByOwner(ctx context.Context, ownerType, ownerID int64, limit, offset int64) ([]*domain.Image, error) {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) Update(ctx context.Context, image *domain.Image) error {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) UpdateMany(ctx context.Context, images []*domain.Image) error {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) Delete(ctx context.Context, id int64) error {
	//TODO implement me
	panic("implement me")
}

func (r *ImageRepoImpl) DeleteMany(ctx context.Context, ids []int64) error {
	//TODO implement me
	panic("implement me")
}

func NewImageRepo(db *database.PostgreSQL, cache *database.Redis) *ImageRepoImpl {
	return &ImageRepoImpl{
		db:    db,
		cache: cache,
	}
}
